


function promiseWrapper(api) {
    let result = Promise.resolve()
    return () => {
        result = result.then(() => {
            //? return一个Promise 以便继续then 且需要等待resolve
            return new Promise((resolve, reject) => {
                setTimeout(() => {
                    resolve()
                },1000)
            })
        })
        return result
    }
}
//? 实现闭包 以使Promise成链
let task = promiseWrapper()
//? 为了模拟请求 所以需要分开then
//? 第一次 result就是初始化的Promise.resolve() 相当于Promise.resolve().then().then()
task().then(res => {
    console.log('1')
})
//? 第二次 result是Promise.resolve().then() 只不过前面一个还没执行到resolve 需要等待 相当于相当于Promise.resolve().then().then().then()
task().then(res => {
    console.log('2')
})
setTimeout(() => {
    task().then(res => {
        console.log('3')
    })
},1500)
